class Base
{
public:
	void SetVar(int Var)
	{
		m_Var = Var;
	}
protected:
	int GetVar()
	{
		return m_Var;
	}
private:
	int m_Var = 1;
};
/**
 * 派生类，不能直接访问基类私有成员
 * 派生类，可以访问基类的protected和public成员
 * 派生类与基类的关系，是限定派生类在main函数使用时，对其基类成员的访问权限
 * 如果是私有继承：则派生类在main中，无法访问基类的任何成员和方法
 */
class Derive : private Base
{

public:
	Derive()
	{

	}
public:
	int m_Var1 = 0;
	void Add()
	{
		SetVar(3);
		m_Var1 += GetVar();
		/** 错误示例 */
		//m_Var1 += m_Var;
	}
};

int main()
{
	Derive* t= new Derive();
	//t->SetVar(3);
	t->Add();
	delete t;
}
